package com.wctj.api.business.common.service;

import com.wctj.api.infra.common.bean.NoticeParams;
import com.wctj.api.infra.common.bean.NoticeRequest;
import com.wctj.api.infra.web.support.HttpRequestNoticeParams;

/**
 * 支付回调响应模式处理
 */
public interface EventTypeResponse {

    /**
     * 处理回调请求
     * @param requestNoticeParam
     * @return
     */
    String businessHandle(HttpRequestNoticeParams requestNoticeParam);

    String businessHandle(NoticeParams noticeParams);

    /**
     * 将请求参数或者请求流转化为 Map
     *
     * @param request 通知请求
     * @return 获得回调的请求参数
     */
    <P extends NoticeParams> P getNoticeParams(NoticeRequest request);

    void payBack(NoticeParams noticeParams, String payOrderNum);

    /**
     * Event事件类型
     * @return
     */
    String getEventType();



}
